package com.ljh.common.utils;

import com.alibaba.fastjson2.JSON;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;

/**
 * @author: Themberfue
 * @date: 2025/4/24 19:48
 * @description:
 */
@Slf4j
public class JSONUtil<T> {
    /**
     * 将 json 字符串转换为对象
     * @param text json 字符串
     * @param clazz 目标对象
     * @return 目标对象
     * @param <T> T
     */
    public static <T> T parse(String text, Class<T> clazz) {
        // TODO 1. 校验 json 字符串
        if (!StringUtils.hasLength(text)) {
            return null;
        }

        // TODO 2. 转换为对象
        try {
            return JSON.parseObject(text, clazz);
        } catch (Exception e) {
            log.error("parse error...", e);
            return null;
        }
    }

    /**
     * 将对象转换为 json 字符串
     * @param obj 对象
     * @return json 字符串
     */
    public static String stringfy(Object obj) {
        try {
            return null == obj ? null : JSON.toJSONString(obj);
        } catch (Exception e) {
            log.error("stringfy error...", e);
            return null;
        }
    }
}
